package com.jt.service;

import com.jt.pojo.Cart;
import com.jt.pojo.Order;

import java.util.List;

/**
 * @author dc
 * @Classname DubboCartService
 * @Date 2020/2/28 14:44
 */
public interface DubboCartService {
    /**
     * 根据用户id查询购物车数据
     * @param userId 用户id
     * @return 购物车商品列表
     */
    List<Cart> findCartListByUserId(Long userId);

    /**
     * 新增购物车商品信息
     * 需求:
     * 新增购物车时,首先根据itemId和userId查询购物车数据
     * 如果查询结果为null,表示用户第一次新增该商品,则直接入库
     * 如果查询结果不为null,表示用户之前加入过该商品,则更新商品数量
     * @param cart 购物车商品信息
     */
    void saveCart(Cart cart);

    /**
     * 购物车增加减少商品数量更新数据库
     * @param cart 购物车商品信息
     */
    void updateItemNum(Cart cart);

    /**
     * 删除购物车商品信息
     * @param cart
     */
    void deleteCart(Cart cart);

    /**
     * 支付之后删除购物车商品信息
     * @param order 订单中的商品信息
     */
    void deleteCartAfterPay(Order order);
}
